/**
 * 请求拦截
 * @param {Object} http
 */
module.exports = (vm) => {
	const ajaxHeader = 'x-ajax';
	const sessionIdHeader = 'Authorization';
	const rememberMeHeader = 'x-remember';
	
    uni.$u.http.interceptors.request.use((config) => { // 可使用async await 做异步操作
       if (!config.header){
       	config.header = [];
        }
        
        config.header["source"] = "app";
        config.header["Authorization"] = 'Bearer '+ uni.getStorageSync('token');
        if (!config.header[ajaxHeader]){
       	config.header[ajaxHeader] = 'json';
        }
        
        // 设定传递 Token 认证参数 aidex
        if (!config.header[sessionIdHeader] && vm.vuex_token){
       			config.header[sessionIdHeader] = vm.vuex_token;
        }
        
        // 为节省流量，记住我数据不是每次都发送的，当会话失效后，尝试重试登录 aidex
        if (!config.header[rememberMeHeader] && vm.vuex_remember && config.remember){
       			config.header[rememberMeHeader] = vm.vuex_remember;
       			config.remember = false;
        }
       //console.log('request', config);
       return config;
    }, (config) => // 可使用async await 做异步操作
        Promise.reject(config))
		
	// 封装 get text 请求
	vm.$u.getText = (url, data = {}, header = {}) => {
		return vm.$u.http.request({
			dataType: 'text',
			method: 'GET',
			url,
			header,
			data
		})
	}
	
	// 封装 post json 请求
	vm.$u.postJson = (url, data = {}, header = {}) => {
		header['content-type'] = 'application/json';
		return vm.$u.http.request({
			url,
			method: 'POST',
			header,
			data
		})
	}
}
